package com.pyp.kuaishou.config;

import com.github.kwai.open.api.KwaiOpenOauthApi;
import com.github.kwai.open.api.KwaiOpenVideoApi;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.function.Function;

/**
 * 作者: lauJinyu
 * 快手 SDK 配置类：提供 SDK 工厂方法，按需使用 appId 进行初始化
 */
@Configuration
@Slf4j
public class KuaishouSdkConfig {

    /**
     * OAuth API 工厂：通过 appId 延迟初始化 SDK 实例
     * 作者: lauJinyu
     */
    @Bean
    public Function<String, KwaiOpenOauthApi> oauthApiFactory() {
        log.info("注册 KwaiOpenOauthApi 工厂（通过 appId 延迟初始化）");
        // 使用 SDK 的静态 init(String appId) 方法创建实例，避免直接 new
        return KwaiOpenOauthApi::init; // lambda: appId -> KwaiOpenOauthApi.init(appId)
    }

    /**
     * Video API 工厂：通过 appId 延迟初始化 SDK 实例
     * 作者: lauJinyu
     */
    @Bean
    public Function<String, KwaiOpenVideoApi> videoApiFactory() {
        log.info("注册 KwaiOpenVideoApi 工厂（通过 appId 延迟初始化）");
        // 使用 SDK 的静态 init(String appId) 方法创建实例，避免直接 new
        return KwaiOpenVideoApi::init; // lambda: appId -> KwaiOpenVideoApi.init(appId)
    }
}